<< ProDraw IIe >> Readme
By Craig Bower 14 Feb 09

+-------------------------------------------------------------------------------------+
Apple II machine language ... ugh!

But hey ProDraw is no longer an 'applesoft' drawing program.

That's right: I reworked my original lodraw.toolbox, added a few routines to control
what the Applesoft used to... and ended up doing a BSAVE on the executable instead of
a SAVE.  It's the same old Lodraw/ProDraw you may have enjoyed in the past, but much
quicker with a fancy-schmancy new interface.  Written 100% (ok 99.9%) in Apple II ML.

I still left the applesoft 'stub' file to make it easy as pie to LOAD/SAVE.

So, the 0.1%?  That's the Applesoft component of the file and it is as follows:


]LIST

10 CALL 2080

 
That's it, that's all.
+-------------------------------------------------------------------------------------+

The changes:
------------

- Speed is vastly improved; plotting/moving the cursor is nearly blinding now.

- You can now view what is stored in the Undo and the Merge buffers (Press 'B')

- Optimize screen position is now a 'runtime' keypress - CTRL+direction keys.

- You have the option of clearing the merge buffer (Press 'CTRL-B')

- There is a color chart built in (Press '/')

- File Ops are integrated via BASIC.SYSTEM (Press 'P')

- Undo & Merge buffers now display a status (MU) on the editing screen

- Undo works differently now - you can set it as usual, but there's 90% less undo stores

- The program no longer starts up with the screen filled with the previous text buffer

- Now the previous text buffer gets stored in the undo buffer, which you can force
  back to the screen by pressing '*'

- All coordinates and the color status have been switched to hexadecimal display.
  (This was pure laziness on my part - JSR $FDDA is much easier than converting hex
  to decimal in ML!)

Errata/Bugs:
------------

- Currently the ?-Help display indicates AuxRAM Manager as an option.  It's not in
  this build.  I'm planning on letting users store up to 45 images in AuxRAM.  Some-
  time in the future, I'll work on it. :)

- One of my 'Y-Reg' offset bytes is 'off' in the current build - during filename
  acquisition, you can't use the maximum length of 15 characters.  So the easy fix
  is to keep your filenames short and sweet!  (or at least around 12 chars max)

Future enhancements:
--------------------

- I'm working on adding 'BOX' drawing and 'CIRCLE' drawing routines.

- Cut/Copy/Paste - one of these days!

- AuxRAM manager is in the works - store a ridiculous amount of images in the spare 64K

- A slideshow companion program is on the drawing board.  Where you'll be able to save
  AuxRAM (45 images) as one BIG file under ProDOS then have the slideshow program
  retrieve them, display them, and do nifty screen wipes.

- I'll be re-writing the ProDOS file handling routines, they are SLOPPY right now.
  I'm going to switch over to a MLI-file-handler so ProDraw can become a SYSTEM
  program instead of BASIC.SYSTEM application. 



+-------------------------------------------------------------------------------------+
If you want to dump the Applesoft stub file and have ProDraw IIe be a ML file
perform the following instructions on the included disk image:

]LOAD STARTUP

]BSAVE ML.PRODRAW,A$820,L$3058

Keep in mind, the current file handling routines are tied into BASIC.SYSTEM, via the 
DOSCMDJMP ($BE03) vector.  So if you move ML.PRODRAW to a disk without BASIC.SYSTEM
you won't be saving or loading any images until you re-write the file handling
routines. 
+-------------------------------------------------------------------------------------+


So there you have it, my first attempt at writing purely in Machine Language.  It's not
very tight code, it does nothing tricky, and to a seasoned veteran it's laughable I'm
sure.  But it works and was a lot of fun to create.  I hope you enjoy it!  Oh and if
you are wondering what Assembler I used?   Think:  CALL -151 and break out the mental
hatchet to put the right Op Codes and Operands in the correct spots.  Ugh!

Cheers,
Craig



